import {createNamespace} from '../utils';
import {ParentMixin} from '../mixins/relation';
import {BORDER_TOP_BOTTOM} from '../utils/constant';

var _createNamespace = createNamespace('collapse'),
    createComponent = _createNamespace[0],
    bem = _createNamespace[1];

export default createComponent({
    mixins: [ParentMixin('vanCollapse')],
    props: {
        accordion: Boolean,
        value: [String, Number, Array],
        border: {
            type: Boolean,
            default: true
        }
    },
    methods: {
        switch: function _switch(name, expanded) {
            if (!this.accordion) {
                name = expanded ? this.value.concat(name) : this.value.filter(function (activeName) {
                    return activeName !== name;
                });
            }

            this.$emit('change', name);
            this.$emit('input', name);
        }
    },
    render: function render() {
        var _ref;

        var h = arguments[0];
        return h("div", {
            "class": [bem(), (_ref = {}, _ref[BORDER_TOP_BOTTOM] = this.border, _ref)]
        }, [this.slots()]);
    }
});